Skip to content

startUpdateLocation

디바이스의 위치 정보를 지속적으로 감지하고, 위치가 변경되면 콜백을 실행하는 함수예요. 콜백 함수를 등록하면 위치가 변경될 때마다 자동으로 호출돼요. 실시간 위치 추적이 필요한 기능을 구현할 때 사용할 수 있어요. 예를 들어 지도 앱에서 사용자의 현재 위치를 실시간으로 업데이트할 때, 운동 앱에서 사용자의 이동 거리를 기록할 때 등이에요. 위치 업데이트 주기와 정확도를 조정해 배터리 소모를 최소화하면서도 필요한 정보를 얻을 수 있어요.

시그니처

typescript
function startUpdateLocation(eventParams: {
    onEvent: (response: Location) => void;
    onError: (error: unknown) => void;
    options: StartUpdateLocationOptions;
}): () => void;

파라미터

  • options필수 · StartUpdateLocationOptions

    위치 정보 감지에 필요한 설정 객체에요.

    • options.accuracynumber

      위치 정확도를 설정해요.

    • options.timeIntervalnumber

      위치 정보를 업데이트하는 최소 주기로, 단위는 밀리초(ms)예요. 이 값은 위치 업데이트가 발생하는 가장 짧은 간격을 설정하지만, 시스템이나 환경의 영향을 받아 지정한 주기보다 더 긴 간격으로 업데이트될 수 있어요.

    • options.distanceIntervalnumber

      위치 변경 거리를 미터(m) 단위로 설정해요.

    • options.callback(location: Location) => void

      위치 정보가 변경될 때 호출되는 콜백 함수예요. 자세한 내용은 Location을 참고해주세요.

예제

위치 정보 변경 감지하기

tsx
import React, { useState, useEffect } from 'react';
import { View, Text, Button } from 'react-native';
import { startUpdateLocation } from '@apps-in-toss/framework';

// 위치 정보 변경 감지하기
function LocationWatcher() {
  const [location, setLocation] = useState(null);

  useEffect(() => {
    return startUpdateLocation({
      options: {
        accuracy: Accuracy.Balanced,
        timeInterval: 3000,
        distanceInterval: 10,
      },
      onEvent: (location) => {
        setLocation(location);
      },
      onError: (error) => {
        console.error('위치 정보를 가져오는데 실패했어요:', error);
      },
    });
  }, []);

  if (location == null) {
    return <Text>위치 정보를 가져오는 중이에요...</Text>;
  }

  return (
    <View>
      <Text>위도: {location.coords.latitude}</Text>
      <Text>경도: {location.coords.longitude}</Text>
      <Text>위치 정확도: {location.coords.accuracy}m</Text>
      <Text>높이: {location.coords.altitude}m</Text>
      <Text>고도 정확도: {location.coords.altitudeAccuracy}m</Text>
      <Text>방향: {location.coords.heading}°</Text>
    </View>
  );
}